class LocalDBRouter:
    """
    数据库路由，PostgreSQL作为远程只读数据库，所有数据保存都在SQLite中
    """
    
    def db_for_read(self, model, **hints):
        # 所有读取操作优先使用PostgreSQL（只读）
        if model._meta.app_label == 'stocks':
            # 对于股票数据，使用PostgreSQL读取
            if hasattr(model, '_meta') and hasattr(model._meta, 'db_table'):
                if model._meta.db_table not in ['strategy', 'buy_signal']:
                    return 'postgres'
        return 'default'  # 默认使用SQLite

    def db_for_write(self, model, **hints):
        # 所有写入操作都使用SQLite
        return 'default'

    def allow_relation(self, obj1, obj2, **hints):
        # 允许所有模型之间的关联
        if obj1._meta.app_label == 'stocks' and obj2._meta.app_label == 'stocks':
            return True
        return None

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        # 所有迁移都应用到SQLite数据库
        if app_label == 'stocks':
            return db == 'default'
        return None
